home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 6
/
Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso
/
004a
/
evolkit1.zip
/
MANUAL
< prev
next >
Wrap
Text File
|
1990-08-16
|
18KB
|
463 lines
BBBBEEEEHHHHAAAAVVVVIIIIOOOORRRRAAAALLLL EEEEVVVVOOOOLLLLUUUUTTTTIIIIOOOONNNN SSSSIIIIMMMMUUUULLLLAAAATTTTIIIIOOOONNNN
CCCCOOOONNNNSSSSTTTTRRRRUUUUCCCCTTTTIIIIOOOONNNN KKKKIIIITTTT
UUUUsssseeeerrrr''''ssss MMMMaaaannnnuuuuaaaallll
Version 1.0
_M_i_c_h_a_e_l _E. _M_i_l_l_s, _P_h._D.
Psychology Department
Loyola Marymount University
7101 W. 80th St.
Los Angeles, CA 90045
(213) 642-3017
c Copyright 1989 Michael E. Mills, Ph.D.
IIIINNNNTTTTRRRROOOODDDDUUUUCCCCTTTTIIIIOOOONNNN
The _B_e_h_a_v_i_o_r_a_l _E_v_o_l_u_t_i_o_n _S_i_m_u_l_a_t_i_o_n _C_o_n_s_t_r_u_c_t_i_o_n _K_i_t _a_l_l_o_w_s
_r_e_s_e_a_r_c_h_e_r_s _a_n_d _s_t_u_d_e_n_t_s _t_o _p_e_r_f_o_r_m _a _v_a_r_i_e_t_y _o_f _e_v_o_l_u_t_i_o_n_a_r_y
_s_i_m_u_l_a_t_i_o_n_s. _U_p _t_o _f_i_v_e _d_i_f_f_e_r_e_n_t "_c_r_e_a_t_u_r_e_s" _m_a_y _b_e _d_e_f_i_n_e_d.
_T_h_e _c_h_a_r_a_c_t_e_r_i_s_t_i_c_s _o_f _e_a_c_h _c_r_e_a_t_u_r_e _t_y_p_e _m_a_y _b_e _s_p_e_c_i_f_i_e_d.
_T_h_e_s_e _v_a_r_i_a_b_l_e_s _i_n_c_l_u_d_e _l_i_f_e_s_p_a_n, _s_p_e_e_d _o_f _m_o_v_e_m_e_n_t, _a_n_d _t_h_e
_t_i_m_e _a_f_t_e_r _b_i_r_t_h _b_e_f_o_r_e _t_h_e _c_r_e_a_t_u_r_e _b_e_c_o_m_e_s _o_f _r_e_p_r_o_d_u_c_t_i_v_e _a_g_e
("_d_o_r_m_a_n_c_y"). _T_h_e _s_y_m_b_o_l (_a_n_d _i_t_s _c_o_l_o_r) _d_i_s_p_l_a_y_e_d _o_n _t_h_e _s_c_r_e_e_n
_t_o _r_e_p_r_e_s_e_n_t _t_h_e _c_r_e_a_t_u_r_e _m_a_y _b_e _s_p_e_c_i_f_i_e_d. _C_r_e_a_t_u_r_e _s_y_m_b_o_l_s _m_a_y
_b_e _a_n_y _A_S_C_I_I _s_y_m_b_o_l.
_A_f_t_e_r _t_h_e _v_a_r_i_o_u_s _c_r_e_a_t_u_r_e _t_y_p_e_s _h_a_v_e _b_e_e_n _d_e_f_i_n_e_d, _t_h_e_i_r
_c_o_u_r_t_s_h_i_p, _m_a_t_i_n_g, _a_n_d _p_a_r_e_n_t_i_n_g _b_e_h_a_v_i_o_r_s _a_r_e _d_e_f_i_n_e_d. _F_o_r _e_a_c_h
_p_o_s_s_i_b_l_e _m_a_t_i_n_g _p_a_i_r, _t_h_e_s_e _v_a_r_i_a_b_l_e_s _m_a_y _b_e _s_e_t: _t_i_m_e _s_p_e_n_t _i_n
_c_o_u_r_t_s_h_i_p (_b_e_f_o_r_e _m_a_t_i_n_g _c_a_n _o_c_c_u_r), _t_h_e _p_r_o_b_a_b_i_l_i_t_y _t_h_a_t _t_h_e
_p_a_i_r _w_i_l_l _d_e_c_i_d_e _t_o _m_a_t_e _a_f_t_e_r _t_h_e_i_r _c_o_u_r_t_s_h_i_p, _t_h_e _t_i_m_e _e_a_c_h
_p_a_r_e_n_t _i_n_v_e_s_t_s _i_n _r_e_a_r_i_n_g _r_e_s_u_l_t_i_n_g _o_f_f_s_p_r_i_n_g (_i_f _a_n_y), _t_h_e
_p_r_o_b_a_b_i_l_i_t_y _t_h_a_t _t_h_e _c_o_u_p_l_e _w_i_l_l _h_a_v_e _o_n_e, _t_w_o, _o_r _t_h_r_e_e
_o_f_f_s_p_r_i_n_g, _a_n_d _t_h_e "_c_r_e_a_t_u_r_e _t_y_p_e_s" _o_f _t_h_e _o_f_f_s_p_r_i_n_g.
_W_h_e_n _a_l_l _o_f _t_h_e _a_b_o_v_e _v_a_r_i_a_b_l_e_s _h_a_v_e _b_e_e_n _d_e_f_i_n_e_d _i_n _t_h_e _c_r_e_a_t_u_r_e
_d_e_f_i_n_i_t_i_o_n _t_a_b_l_e, _t_h_e _u_s_e_r _c_a_n _t_h_e_n _s_t_a_r_t _t_h_e _s_i_m_u_l_a_t_i_o_n. _W_h_e_n
_t_h_e _s_i_m_u_l_a_t_i_o_n _b_e_g_i_n_s, _s_e_v_e_r_a_l _w_i_n_d_o_w_s _a_p_p_e_a_r: (_a) _a _w_i_n_d_o_w _w_h_i_c_h
_s_h_o_w_s _t_h_e _c_r_e_a_t_u_r_e_s _m_o_v_i_n_g _a_b_o_u_t _a_n_d _i_n_t_e_r_a_c_t_i_n_g, (_b) _a _w_i_n_d_o_w
_w_i_t_h _a _m_o_v_i_n_g _g_r_a_p_h _o_f _t_h_e _r_e_l_a_t_i_v_e _p_e_r_c_e_n_t_a_g_e_s _o_f _e_a_c_h _c_r_e_a_t_u_r_e
_t_y_p_e, _a_n_d (_c) _a_n_d _i_n_f_o_r_m_a_t_i_o_n _w_i_n_d_o_w.
_D_u_r_i_n_g _t_h_e _s_i_m_u_l_a_t_i_o_n, _t_h_e _u_s_e_r _c_a_n: (_a) _s_p_e_e_d _u_p _o_r _s_l_o_w _d_o_w_n
_t_h_e _s_i_m_u_l_a_t_i_o_n, (_b) _p_a_u_s_e _t_h_e _s_i_m_u_l_a_t_i_o_n, (_c) _t_u_r_n _m_a_t_i_n_g "_b_e_e_p_s"
_o_n _o_r _o_f_f, _a_n_d (_d) _q_u_i_t _t_h_e _s_i_m_u_l_a_t_i_o_n. _T_h_e _s_i_m_u_l_a_t_i_o_n _w_i_l_l _s_t_o_p
_o_n _i_t_s _o_w_n _a_f_t_e_r _t_h_e _c_r_e_a_t_u_r_e_s _e_i_t_h_e_r _t_o_t_a_l_l_y _f_i_l_l _t_h_e _s_c_r_e_e_n, _o_r
_t_h_e_y _a_l_l _g_o _e_x_t_i_n_c_t.
_A_f_t_e_r _t_h_e _s_i_m_u_l_a_t_i_o_n, _a _f_i_l_e _c_a_l_l_e_d "_p_l_o_t._g_p_h" _w_i_l_l _h_a_v_e _b_e_e_n
_c_r_e_a_t_e_d _t_h_a_t _w_i_l_l _s_h_o_w _t_h_e _g_r_a_p_h _o_f _t_h_e _p_e_r_c_e_n_t_a_g_e_s _o_f _e_a_c_h
_c_r_e_a_t_u_r_e _t_y_p_e.
RRRRUUUUNNNNNNNNIIIINNNNGGGG TTTTHHHHEEEE PPPPRRRROOOOGGGGRRRRAAAAMMMM
To define the creatures for a simulation, and to automatically
run the simulation after the creatures have been defined, give
the command:
define
A form will appear that you can use to define up to five
different creature types. After you have entered information for
a field, press return. You will be automatically advanced to the
next field. To correct an error, press the backspace key. To
move back to previous fields, press the up-arrow key; to move
forward to fields, press the down-arrow key.
At the bottom of the screen is an information window. Refer to
this window for instructions about the type of information
required for each field. Some fields that require percentage
data may have to sum to 100, or an error will occur when the
simulation is run.
TTTTEEEECCCCHHHHNNNNIIIICCCCAAAALLLL IIIINNNNFFFFOOOORRRRMMMMAAAATTTTIIIIOOOONNNN
You can also modify the files normally created by the 'define'
program yourself. In this fashion can bypass the 'define'
program.
An input file consists of a sequence of type and subtype
declarations followed by a set of mating tables and an initial
population descriptor. This information must be in consecutive
order. No forward references to types are allowed.
CCCCRRRREEEEAAAATTTTUUUURRRREEEE TTTTYYYYPPPPEEEE
A type declaration defines a creature type. The syntax for a
creature definition is as follows:
type <"name of creature">
{
symbol : <int>
color : (<color-value>, <mono-value>)
lifespan : <int>
dormancy : <int>
speed : <int>
}
The creature's attributes (symbol, color, etc) may appear in any
order but a given attribute can only be defined once.
[1] symbol
Is an integer corresponding to the ascii value of the
character used to represent the creature.
[2] color
Consists of two values separated by a comma. These
values define the color of the creature on a color
and on a monochrome monitor respectively.
The legal values for a color on a color monitor are:
black
blue
green
cyan
red
magenta
brown
light_grey
dark_grey
light_blue
light_green
light_cyan
light_red
light_magenta
yellow
white
The legal values for a monochrome monitor are:
normal
underline
reverse
which can be further qualified by any combination of
the following key words:
bright
blink
eg: bright blink normal
[3] lifespan
Is a positive integer that determines the organism's lifespan.
[4] dormancy
Is a positive integer that determines the organism's reproductive
dormancy period after mating or after it has been created.
The dormancy period is required to prevent an organism from
immediately mating with its previous spouse and also to prevent
newly created children from mating with their siblings or parents.
[5] speed
Is a positive integer that determines the number of random
squares an organism can move in one unit of time.
CCCCRRRREEEEAAAATTTTUUUURRRREEEE SSSSUUUUBBBBTTTTYYYYPPPPEEEE
A subtype declaration defines a "mutation" of a parent creature type
The syntax is described below:
subtype "<mutant-creature-name>" of "<parent-creature-name>"
{
symbol : <int>
color : (<color-value>, <mono-value>)
lifespan : <int>
dormancy : <int>
speed : <int>
}
All the attributes of a subtype are optional. If an attribute is not
specified the value of the attribute is inherited from its parent
class.
MMMMAAAATTTTIIIINNNNGGGG TTTTAAAABBBBLLLLEEEE
A mating table defines how two organisms will reproduce. You only
need to provide a mating table for legal mating combinations. In
other words, it is not required that you provide a mating table
for two females or two males.
The syntax for a mating table is
mate ( "<creature-name-1>" "<creature-name-2>" )
{
courtship : ( <time>, <probability> )
rearing : ( <rearing-costs-for-creature-1>, <rearing-cost-for-creature-2> )
offspring : ( < %for 1 organism, %for 2 organisms, ... )
distribution : ( "creature-1", %chance
"creature-2", %chance,
...
)
}
[1] "creature-name-1" "creature-name-2"
The creature name entries specify the names of the types or
subtypes of a reproductive couple. Typically the names will
be different but you can specify matings between organisms
of the same type.
[2] courtship
Consists of two positive integers representing the courtship
time and probability respectively. The courtship time
is the amount of time that the couple will spend courting.
The courtship probability is the probability that the
two will reproduce. This value must be from 0 to 100.
[3] rearing
The rearing entry specifies the rearing costs in time
for creature 1 and creature 2 respectively.
[4] offspring
The offspring entries represent the probability for
1, 2, 3, etc children. The sum of these values must
be 100.
[5] distribution
The distribution entries represent the probability
of an offspring for a specific creature type. The
sum of these entries must be 100.
PPPPOOOOPPPPUUUULLLLAAAATTTTIIIIOOOONNNN
The population table determines the initial creature
distribution. The syntax is described below:
population
{
"creature-name-1" : <number>
"creature-name-2" : <number>
...
}
SSSSAAAAMMMMPPPPLLLLEEEE IIIINNNNPPPPUUUUTTTT FFFFIIIILLLLEEEE
Below is a sample input file. This is used to simulate the
evolution of "fast" vs. "coy" female, and "faithful" vs. "philandering"
males.
type "coy"
{
symbol : 12
color : (red,dark_grey,normal,underline)
lifespan : 150
dormancy : 5
speed : 1
}
type "fast"
{
symbol : 12
color : (light_red,dark_grey,normal,underline)
lifespan : 150
dormancy : 5
speed : 1
}
type "faithful"
{
symbol : 11
color : (blue, dark_grey,normal, underline)
lifespan : 150
dormancy : 5
speed : 1
}
type "philanderer"
{
symbol : 11
color : (light_blue,dark_grey,normal,underline)
lifespan : 150
dormancy : 5
speed : 1
}
mate ( "faithful" , "coy" )
{
courtship : ( 15 , 80 )
rearing : ( 20 , 20 )
offspring : ( 0, 15 , 85 )
distribution : ( "faithful" , 30,
"coy", 50,
"philanderer", 10,
"fast", 10
)
}
mate ( "faithful" , "fast" )
{
courtship : ( 5 , 90 )
rearing : ( 10 , 30 )
offspring : ( 50, 25 , 25 )
distribution : ( "faithful" , 40,
"fast", 20,
"philanderer", 20,
"coy", 20
)
}
mate ( "philanderer" , "coy" )
{
courtship : ( 15 , 25 )
rearing : ( 5 , 30 )
offspring : ( 85, 10, 5)
distribution : (
"philanderer", 10,
"coy", 50,
"faithful", 20,
"fast", 20
)
}
mate ( "philanderer" , "fast" )
{
courtship : ( 0 , 100 )
rearing : ( 5 , 35 )
offspring : ( 65, 25, 10)
distribution : (
"philanderer", 30,
"fast", 30,
"coy", 20,
"faithful", 20
)
}
population
{
"faithful" : 25
"coy" : 25
"philanderer" : 25
"fast" : 25
}
RRRRUUUUNNNNNNNNIIIINNNNGGGG TTTTHHHHEEEE SSSSIIIIMMMMUUUULLLLAAAATTTTIIIIOOOONNNN
To run the simulation, give the following command:
evolkit _i_n_p_u_t_f_i_l_e [-_m|-_a|-_b|-_c] [-_w_l_x,_l_y,_t_x,_t_y] [-_l_i_n_t_e_r_v_a_l] [-
_s_s_t_e_p]
Where the options are as follows:
-a auto-detect monitor
-c cga or ega monitor
-m monochrome monitor
-b use bios to write to screen
-wtx,ty,lx,ly define window boundaries for display
tx, ty = top col,row; lx, ly = lower col,row
-linterval defines interval
-sstep defines step interval
-ppause defines pause interval
For example:
evolkit -a -p0 -w30,0,79,16 input.def